
package com.ce.pms.customer.vo;

import java.util.Date;

import com.ce.pms.exception.BusinessException;
import com.ce.util.BlankUtil;

/**
 * 功能描述: 个人ViewObject类
 * <p>
 * 版权所有：中企动力
 * <p>
 * 未经本公司许可，不得以任何方式复制或使用本程序任何部分
 *
 * @author 付湘辉 Created on 2008-05-22
 */
public class IndividualVO extends CustomerVO {

	/**
	 * long：serialVersionUID
	 */
	private static final long serialVersionUID = -1166932229805555430L;

	/**
	 * 称呼
	 */
	private String appellative;

	/**
	 * 出生日期
	 */
	private Date birthDate;

	/**
	 * 出生日期显示值
	 */
	private String birthDateDisplayValue;

	/**
	 * 单位名称
	 */
	private String corporation;

	/**
	 * 电子邮件
	 */
	private String email;

	/**
	 * 紧急联系人
	 */
	private String emergencyMan;

	/**
	 * 紧急联系电话
	 */
	private String emergencyPhone;

	/**
	 * 籍贯
	 */
	private String homeplace;

	/**
	 * 兴趣爱好id字符串（用逗号分隔多个兴趣爱好id）
	 */
	private String interest;

	/**
	 * 兴趣爱好<b>name</b>字符串（用逗号分隔多个兴趣爱好<b>name</b>）
	 */
	private String interestNameStr;

	/**
	 * 联系地址
	 */
	private String linkAddress;

	/**
	 * 职业
	 */
	private String profession;

	/**
	 * 车辆情况
	 */
	private String registerCar;

	/**
	 * 户口所在地
	 */
	private String registerPlace;

	/**
	 * 备注
	 */
	private String remark;

	/**
	 * 性别(包括code和value，以|符号连接。 如：CS_INDIVIDUAL_SEX|0 CS_INDIVIDUAL_SEX|1)
	 */
	private Long sex;

	/**
	 * 性别显示值。如：男  女
	 */
	private String sexDisplayValue;

	/**
	 *
	 * 功能描述: TODO 个人VO类空构造器
	 *
	 * @author 付湘辉
	 * Created on:2008-5-30
	 * @roseuid 4833F3D1035B
	 * 修改原因：
	 */
	public IndividualVO() {

	}

	/**
	 *
	 * 功能描述: TODO 个人VO类构造器
	 *
	 * @author 付湘辉
	 * Created on:2008-5-30
	 *
	 * 修改原因：
	 * @param participantId 		参与人id
	 * @param participantName　		参与人名称
	 * @param telephone　			电话
	 * @param certificateType　		证件类型id
	 * @param certificateNo　		证件号码
	 * @param opratorStatus　		缓存操作状态
	 * @param hasSave　				缓存保存状态
	 * @param customerType　			住户类型
	 * @param certificateTypeName　	证件类型名称
	 * @param index　				缓存索引
	 * @param customerTypeCode　		住户类型编码
	 * @param appellative　			称呼
	 * @param sex　					性别
	 * @param emergencyLinkMan　		紧急联系人
	 * @param emergencyPhone　		紧急联系电话
	 * @param birthDate　			出生日期
	 * @param homeplace　			籍贯
	 * @param registerPlace　		户口所在地
	 * @param profession　　			职业
	 * @param corporation　			单位名称
	 * @param linkAddress　			联系地址
	 * @param email　				电子邮件
	 * @param registerCar　			车辆状况
	 * @param interest　				兴趣爱好
	 * @param remark　				备注
	 */
	public IndividualVO(Long participantId,
						String participantName,
						String telephone,
						Long certificateType,
						String certificateNo,
						String opratorStatus,
						String hasSave,
						String customerType,
						String certificateTypeName,
						Integer index,
						String customerTypeCode,
						String appellative,
						Long sex,
						String emergencyLinkMan,
						String emergencyPhone,
						Date birthDate,
						String homeplace,
						String registerPlace,
						String profession,
						String corporation,
						String linkAddress,
						String email,
						String registerCar,
						String interest,
						String remark) {
		super(participantId, participantName, telephone, certificateType,
				certificateNo, opratorStatus, hasSave, customerType,
				certificateTypeName, index, customerTypeCode);
		this.appellative = appellative;
		this.sex = sex;
		this.emergencyMan = emergencyLinkMan;
		this.emergencyPhone = emergencyPhone;
		this.birthDate = birthDate;
		this.homeplace = homeplace;
		this.registerPlace = registerPlace;
		this.profession = profession;
		this.corporation = corporation;
		this.linkAddress = linkAddress;
		this.email = email;
		this.registerCar = registerCar;
		this.interest = interest;
		this.remark = remark;
	}

	@Deprecated
	public IndividualVO(String appellative, Long sex, String emergencyPhone,
			Date birthDate, String homeplace, String registerPlace,
			String profession, String corporation, String linkAddress,
			String email, String registerCar, String interest, String remark) {
		super();
		this.appellative = appellative;
		this.sex = sex;
		this.emergencyPhone = emergencyPhone;
		this.birthDate = birthDate;
		this.homeplace = homeplace;
		this.registerPlace = registerPlace;
		this.profession = profession;
		this.corporation = corporation;
		this.linkAddress = linkAddress;
		this.email = email;
		this.registerCar = registerCar;
		this.interest = interest;
		this.remark = remark;
	}

	/**
	 * 功能描述: 检查必填项 <br>
	 *
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-11-19  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public void checkRequiredField(){
		super.checkRequiredField();
		if (BlankUtil.isBlank(this.sex)
				|| BlankUtil.isBlank(this.certificateType)
				|| BlankUtil.isBlank(this.certificateNo)) {
			throw new BusinessException("common:mustFill_null_exception",
					BusinessException.WARNING);
		}
	}

	/**
	 * 功能描述: 获取称呼
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public String getAppellative() {
		return appellative;
	}

	/**
	 * 功能描述: 获取出生日期
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public Date getBirthDate() {
		return birthDate;
	}

	/**
	 * 功能描述: 获取出生日期显示值
	 *
	 * @author 付湘辉
	 * Created on:2008-6-11
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public String getBirthDateDisplayValue() {
		return birthDateDisplayValue;
	}

	/**
	 * 功能描述: 获取单位名称
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public String getCorporation() {
		return corporation;
	}

	/**
	 * 功能描述: 获取电子邮件
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public String getEmail() {
		return email;
	}

	/**
	 * 功能描述: 获取紧急联系人
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public String getEmergencyMan() {
		return emergencyMan;
	}

	/**
	 * 功能描述: 获取紧急联系电话
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public String getEmergencyPhone() {
		return emergencyPhone;
	}

	/**
	 * 功能描述: 获取籍贯
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public String getHomeplace() {
		return homeplace;
	}

	/**
	 * 功能描述: 获取兴趣爱好（用逗号分隔多个兴趣爱好）
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public String getInterest() {
		return interest;
	}

	/**
	 * 功能描述: 获取兴趣爱好<b>name</b>字符串
	 *
	 * @author 付湘辉
	 * Created on:2008-6-13
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public String getInterestNameStr() {
		return interestNameStr;
	}

	/**
	 * 功能描述: 获取联系地址
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public String getLinkAddress() {
		return linkAddress;
	}

	/**
	 * 功能描述: 获取职业
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public String getProfession() {
		return profession;
	}

	/**
	 * 功能描述: 获取车辆情况
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public String getRegisterCar() {
		return registerCar;
	}

	/**
	 * 功能描述: 获取户口所在地
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public String getRegisterPlace() {
		return registerPlace;
	}

	/**
	 * 功能描述: 获取备注
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public String getRemark() {
		return remark;
	}

	/**
	 * 功能描述: 获取性别id
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public Long getSex() {
		return sex;
	}

	/**
	 * 功能描述: 获取性别显示值
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @return 返回结果
	 */
	public String getSexDisplayValue() {
		return sexDisplayValue;
	}

	/**
	 * 功能描述: 设置称呼
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @param appellative the appellative to set
	 */
	public void setAppellative(String appellative) {
		this.appellative = appellative;
	}

	/**
	 * 功能描述: 设置出生日期
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @param birthDate the 出生日期 to set
	 */
	public void setBirthDate(Date birthDate) {
		this.birthDate = birthDate;
	}

	/**
	 * 功能描述: 设置出生日期显示值
	 *
	 * @author 付湘辉
	 * Created on:2008-6-11
	 *
	 * 修改原因：
	 * @param birthDateDisplayValue the 出生日期显示值 to set
	 */
	public void setBirthDateDisplayValue(String birthDateDisplayValue) {
		this.birthDateDisplayValue = birthDateDisplayValue;
	}

	/**
	 * 功能描述: 设置单位名称
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @param corporation the 单位名称 to set
	 */
	public void setCorporation(String corporation) {
		this.corporation = corporation;
	}

	/**
	 * 功能描述: 设置电子邮件
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @param email the 电子邮件 to set
	 */
	public void setEmail(String email) {
		this.email = email;
	}

	/**
	 * 功能描述: 设置紧急联系人
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @param emergencyMan the 紧急联系人 to set
	 */
	public void setEmergencyMan(String emergencyMan) {
		this.emergencyMan = emergencyMan;
	}

	/**
	 * 功能描述: 设置紧急联系电话
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @param emergencyPhone the 紧急联系电话 to set
	 */
	public void setEmergencyPhone(String emergencyPhone) {
		this.emergencyPhone = emergencyPhone;
	}

	/**
	 * 功能描述: 设置籍贯
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @param homeplace the 籍贯 to set
	 */
	public void setHomeplace(String homeplace) {
		this.homeplace = homeplace;
	}

	/**
	 * 功能描述: 设置兴趣爱好（用逗号分隔多个兴趣爱好）
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @param interest the 兴趣爱好 to set
	 */
	public void setInterest(String interest) {
		this.interest = interest;
	}

	/**
	 * 功能描述: 设置兴趣爱好<b>name</b>字符串
	 *
	 * @author 付湘辉
	 * Created on:2008-6-13
	 *
	 * 修改原因：
	 * @param interestNameStr the 兴趣爱好<b>name</b>字符串 to set
	 */
	public void setInterestNameStr(String interestNameStr) {
		this.interestNameStr = interestNameStr;
	}

	/**
	 * 功能描述: 设置联系地址
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @param linkAddress the 联系地址 to set
	 */
	public void setLinkAddress(String linkAddress) {
		this.linkAddress = linkAddress;
	}

	/**
	 * 功能描述: 设置职业
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @param profession the 职业 to set
	 */
	public void setProfession(String profession) {
		this.profession = profession;
	}

	/**
	 * 功能描述: 设置车辆情况
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @param registerCar the 车辆情况 to set
	 */
	public void setRegisterCar(String registerCar) {
		this.registerCar = registerCar;
	}

	/**
	 * 功能描述: 设置户口所在地
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @param registerPlace the registerPlace to set
	 */
	public void setRegisterPlace(String registerPlace) {
		this.registerPlace = registerPlace;
	}

	/**
	 * 功能描述: 设置备注
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @param remark the remark to set
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}

	/**
	 * 功能描述: 设置性别id
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @param sex the sex to set
	 */
	public void setSex(Long sex) {
		this.sex = sex;
	}

	/**
	 * 功能描述: 设置性别显示值
	 *
	 * @author 付湘辉
	 * Created on:2008-6-6
	 *
	 * 修改原因：
	 * @param sexDisplayValue the sexDisplayValue to set
	 */
	public void setSexDisplayValue(String sexDisplayValue) {
		this.sexDisplayValue = sexDisplayValue;
	}

}
